ITDB02_Touch  myTouch(A1,A2,A0,8,9);

//======================== Инициализация тачскрина ============================
void touchInit(){
	myTouch.InitTouch(LANDSCAPE); //инициализируем тачскрин
  	myTouch.setPrecision(PREC_MEDIUM); //чувствительность тачскрина
}


//======================== Тач-тест на элементе ============================
void touchEl(int el[], int x, int y){
  int top = (el[0]-1)*interval;
  if(x>95 && x < width-p-10 && y>top && y<top+interval){
  	if(selected == el[0] && !setDelta){
  		setDelta = true;
  	} else {
  		setDelta = false;
  	}
    selected = el[0];
  }
}

//======================== Тач-тест на кнопках + -  ============================
void addTouchTest(int y){
  if(y<=p) setTemp(10);
  else if(y<=p*2+2) setTemp(100);
  else if(y>=height - p) setTemp(-10);
  else if(y>=height - p*2-2) setTemp(-100);
  else setTemp(0);
  redraw = true;
}

//======================== Основной Тач-тест  ============================
void touchTest(){
	boolean pressed = false;
	while (myTouch.dataAvailable() == true){
		if(pressed) continue;
		int lastSel = selected;
		myTouch.read();
		//myGLCD.setColor(255, 255, 0);
		int x = myTouch.getX();
		int y = myTouch.getY();
		//myGLCD.drawPixel(x,y);
		for(int i=0; i<7; i++) if (elements[i][1]) touchEl(elements[i], x, y);
		if(x>width-p){
			addTouchTest(y);
		}
		if(lastSel != selected){
			redraw = true;
		}
		pressed = true;
		//delay(100);
	}
}

//======================== Ищем номер текущего элемента ============================
int findSelectedElement(){
  for(int i=0; i<7; i++) if (elements[i][0] == selected) return i;
}

//======================== Изменяем необходимую температуру текущего элемента ============================
void setTemp(float tempDelta){
  int currentElement = findSelectedElement();
  if(tempDelta != 0) {
  	if(setDelta) {
  		if(elements[currentElement][6] + tempDelta > 0){
  			elements[currentElement][6] += tempDelta; //изменяем дельту
  		}
  	} else {
  		elements[currentElement][3] += tempDelta; //изменяем необходимю температуру
  	}
  } 
  else {
    if(setDelta) {
  		elements[currentElement][6] = elements[currentElement][4] - elements[currentElement][3];
  		if(elements[currentElement][6] < 0) elements[currentElement][6] = elements[currentElement][6] * -1;
  	} else {
  		elements[currentElement][3] = elements[currentElement][4];
    	elements[currentElement][5] = elements[currentElement][4];
    }
  }
  writeData(currentElement, 0, elements[currentElement][3]);
  writeData(currentElement, 1, elements[currentElement][6]);
}